API Documentation
TreeView.h
1 // TreeView.h
3 //
5 
6 namespace nkWinUi
7 {
11  class TreeView : public Component
12  {
13  public :
14 
18  class Item
19  {
20  public :
21 
25  Item () ;
29  virtual ~Item () ;
30 
37  Item* addChild (Item* child) ;
42  Item* getChild (unsigned int index) const ;
46  unsigned int getChildCount () const ;
52  void disavowChild (Item* child) ;
53 
59  void setText (const nkMemory::StringView& text) ;
65  void setIcon (Image* image) ;
73  Image* getIcon () const ;
74 
80  void setParentTree (TreeView* parent) ;
84  TreeView* getParentTree () const ;
90  void setParentItem (Item* item) ;
94  Item* getParentItem () const ;
95 
103  void setAttachedData (void* data) ;
107  void* getAttachedData () const ;
108 
109  // Flags
113  bool getCollapsed () const ;
120  virtual void setCollapsed (bool value) ;
121 
128  } ;
129 
130  public :
131 
139  TreeView (MainSystem* parentSystem) ;
144 
145  // Getters
150  Item* getItemFromData (void* data) const ;
154  virtual Item* getSelectedItem () = 0 ;
159  virtual Item* getItemAtAbsoluteCursor (const nkMaths::Point& absCoords) = 0 ;
164  virtual Item* getItemAtRelativeCursor (const nkMaths::Point& relCoords) = 0 ;
168  bool getSelectOnRightClick () const ;
172  std::function<void (TreeView*)> getSelectionCallback () const ;
173 
174  // Setters
180  void setSelectionOnRightClick (bool value) ;
188  void setSelectionCallback (std::function<void (TreeView*)> value) ;
189 
199  virtual Item* insertItem (const nkMemory::StringView& text, void* data, Item* parent = nullptr) ;
206  virtual void deleteItem (Item* toDelete, bool keepChildrenOnUpper = false) ;
213  virtual void changeItemLabel (Item* toChange, const nkMemory::StringView& label) ;
217  virtual void clearItems () ;
223  void collapseAll (bool status) ;
224 
230  void selectItemFromItsData (void* data) ;
236  virtual void selectItem (Item* item) = 0 ;
249 
253  virtual void exportIntrospection (nkExport::Node* rootNode) override ;
257  virtual void importClassFromTree (nkExport::Node* rootNode) override ;
258  } ;
259 }
nkWinUi::TreeView::Item::getParentItem
Item * getParentItem() const
nkWinUi::TreeView::Item::getChildCount
unsigned int getChildCount() const
nkWinUi::Image
Abstracts an image to be used within the component.
Definition: Image.h:12
nkWinUi::TreeView::Item::setParentItem
void setParentItem(Item *item)
nkWinUi::TreeView::Item::setIcon
void setIcon(Image *image)
nkWinUi::TreeView::changeItemLabel
virtual void changeItemLabel(Item *toChange, const nkMemory::StringView &label)
nkWinUi::TreeView::Item::getIcon
Image * getIcon() const
nkWinUi::TreeView::Item::getCollapsed
bool getCollapsed() const
nkWinUi::TreeView::Item::getAttachedData
void * getAttachedData() const
nkWinUi::TreeView::Item::setAttachedData
void setAttachedData(void *data)
nkWinUi::TreeView::insertItem
virtual Item * insertItem(const nkMemory::StringView &text, void *data, Item *parent=nullptr)
nkWinUi::TreeView::getSelectOnRightClick
bool getSelectOnRightClick() const
nkWinUi::TreeView
A graphical tree view window.
Definition: TreeView.h:12
nkWinUi::TreeView::getSelectedItem
virtual Item * getSelectedItem()=0
nkWinUi::TreeView::setSelectionCallback
void setSelectionCallback(std::function< void(TreeView *)> value)
nkWinUi::TreeView::selectItemFromRelativeCursor
void selectItemFromRelativeCursor(const nkMaths::Point &relCoords)
nkWinUi::TreeView::Item
Holds information of a tree view item.
Definition: TreeView.h:19
nkWinUi::TreeView::Item::Item
Item()
nkWinUi::TreeView::exportIntrospection
virtual void exportIntrospection(nkExport::Node *rootNode) override
nkWinUi::TreeView::Item::setCollapsed
virtual void setCollapsed(bool value)
nkWinUi::TreeView::Item::addChild
Item * addChild(Item *child)
nkWinUi::TreeView::Item::getParentTree
TreeView * getParentTree() const
nkWinUi::Component
Base class for any graphical component.
Definition: Component.h:12
nkWinUi::TreeView::getItemAtAbsoluteCursor
virtual Item * getItemAtAbsoluteCursor(const nkMaths::Point &absCoords)=0
nkWinUi::TreeView::importClassFromTree
virtual void importClassFromTree(nkExport::Node *rootNode) override
nkWinUi::TreeView::clearItems
virtual void clearItems()
nkWinUi::TreeView::getSelectionCallback
std::function< void(TreeView *)> getSelectionCallback() const
nkExport::Node
A node in the tree structure representing the data to export / import.
Definition: Node.h:42
nkWinUi::MainSystem
The main system of the component.
Definition: MainSystem.h:18
nkMaths::Point
Represents a 2D Point.
Definition: Point.h:12
nkWinUi::TreeView::TreeView
TreeView(MainSystem *parentSystem)
nkWinUi::TreeView::selectItem
virtual void selectItem(Item *item)=0
nkMemory::StringView
Class holding information about a string, with no ownership over the data.
Definition: StringView.h:22
nkWinUi::TreeView::deleteItem
virtual void deleteItem(Item *toDelete, bool keepChildrenOnUpper=false)
nkWinUi::TreeView::Item::~Item
virtual ~Item()
nkWinUi::TreeView::Item::disavowChild
void disavowChild(Item *child)
nkWinUi::TreeView::getItemAtRelativeCursor
virtual Item * getItemAtRelativeCursor(const nkMaths::Point &relCoords)=0
nkWinUi::TreeView::selectItemFromItsData
void selectItemFromItsData(void *data)
nkWinUi::TreeView::Item::getText
nkMemory::StringView getText() const
nkWinUi::TreeView::Item::setParentTree
void setParentTree(TreeView *parent)
nkWinUi::TreeView::~TreeView
~TreeView()
nkWinUi
Encompasses all API of component NilkinsWinUi.
Definition: Clipboard.h:7
nkWinUi::TreeView::collapseAll
void collapseAll(bool status)
nkWinUi::TreeView::getItemFromData
Item * getItemFromData(void *data) const
nkWinUi::TreeView::Item::exportIntrospection
void exportIntrospection(nkExport::Node *rootNode)
nkWinUi::TreeView::setSelectionOnRightClick
void setSelectionOnRightClick(bool value)
nkWinUi::TreeView::Item::getChild
Item * getChild(unsigned int index) const
nkWinUi::TreeView::selectItemFromAbsoluteCursor
void selectItemFromAbsoluteCursor(const nkMaths::Point &absCoords)
nkWinUi::TreeView::Item::setText
void setText(const nkMemory::StringView &text)